/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package cn.icanci.timedtask.client.dto;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * @author icanci
 * @date Created in 2021/05/04 15:49
 * @version 1.0
 */
@SuppressWarnings("all")
@Data
public class OrderInfoDTO {
    // ============================ order info ============================
    // 主键，无意义
    private Long orderId;

    // 订单流水号
    private String orderSerialNo;

    // 订单状态
    private Integer orderStatus;
    // ============================ ticket info ============================
    // 飞机票id
    private Long ticketId;
    // 起飞城市
    private String startCity;

    // 抵达城市
    private String arriveCity;

    // 起飞时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    // 抵达时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arriveDate;

    // 起飞城市三字码
    private String startCityCode;

    // 抵达城市三字码
    private String arriveCityCode;

    // 航空公司
    private String gds;

    // 价格
    private BigDecimal price;

    // 仓等
    private Integer ticketLevel;

    // 创建时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    // 更新时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    // 航班号
    private String flightNumber;

    // 座位号
    private String seatNumber;

    // 客机类型
    private Integer aircraftNumber;
    // ============================ coupon info ============================
    // 满的金额
    private BigDecimal fullMoney;

    // 减的金额
    private BigDecimal reduceMoney;

    // 抵用券描述
    private String des;

    // 抵用券使用类型  1单程 2往返
    private Integer couponType;

    // 抵用券唯一编号
    private String couponNumber;

    // 有效开始时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date effectiveStartTime;

    // 有效时间结束
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date effectiveEndTime;

    // 领券时间开始
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    // 领券时间结束
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    // 同一批次的优惠券唯一标识
    private String uniqueKey;
    // ============================ user info ============================
    // 用户id
    private Integer userId;
    // 昵称
    private String nickName;

    // 手机号，11位
    private String phoneNumber;

    // 真实名字
    private String reallyName;

    // 身份证号码
    private String idCardNumber;

    // 邮件地址
    private String emailAddress;

    // 是否是黑名单
    private Integer black;

    // 头像地址
    private String avatar;
}
